//package com.hmdp.service.impl;
//
//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
//import com.hmdp.model.dto.Result;
//import com.hmdp.model.entity.Voucher;
//import com.hmdp.mapper.VoucherMapper;
//import com.hmdp.model.entity.SeckillVoucher;
//import com.hmdp.service.ISeckillVoucherService;
//import com.hmdp.service.IVoucherService;
//import org.springframework.data.redis.core.StringRedisTemplate;
//import org.springframework.stereotype.Service;
//import org.springframework.transaction.annotation.Transactional;
//
//import javax.annotation.Resource;
//import java.util.List;
//
//import static com.hmdp.constants.RedisConstants.SECKILL_STOCK_KEY;
//
///**
// * <p>
// * 服务实现类
// * </p>
// *
// * @author ghp
// * @since 2021-12-22
// */
//@Service
//public class VoucherServiceImpl extends ServiceImpl<VoucherMapper, Voucher> implements IVoucherService {
//
//    @Resource
//    private ISeckillVoucherService seckillVoucherService;
//
//    @Resource
//    private StringRedisTemplate stringRedisTemplate;
//
//    @Override
//    public Result queryVoucherOfShop(Long shopId) {
//        // 查询优惠券信息
//        List<Voucher> vouchers = getBaseMapper().queryVoucherOfShop(shopId);
//        // 返回结果
//        return Result.ok(vouchers);
//    }
//
//    /**
//     * 新增秒杀券
//     * @param voucher
//     */
//    @Override
//    @Transactional
//    public void addSeckillVoucher(Voucher voucher) {
//        // 1、保存优惠券
//        boolean result = save(voucher);
//        if (!result){
//            throw new RuntimeException("优惠券保存失败");
//        }
//        // 2、保存秒杀优惠券信息
//        SeckillVoucher seckillVoucher = new SeckillVoucher();
//        seckillVoucher.setVoucherId(voucher.getId());
//        seckillVoucher.setStock(voucher.getStock());
//        seckillVoucher.setBeginTime(voucher.getBeginTime());
//        seckillVoucher.setEndTime(voucher.getEndTime());
//        result = seckillVoucherService.save(seckillVoucher);
//        if (!result){
//            throw new RuntimeException("秒杀优惠券保存失败");
//        }
//        // 3、将秒杀券库存保存到Redis中（这给信息是可以持久化保存到Redis中，不想要的时候就进行手动删除）
//        stringRedisTemplate.opsForValue().set(SECKILL_STOCK_KEY + voucher.getId(), voucher.getStock().toString());
//    }
//}
